Ga naar hoofdinhoud Ga naar aanvullende inhoud

Voorbeelden van concat-functies

De functie CONCAT() mag niet worden verward met het scripttrefwoord CONCATENATE.

In zijn meest simpele vorm wordt Concat() gebruikt voor het samenvoegen van waarden/woorden/selecties tot één tekenreeks. Het kan echter op een aantal manieren worden gebruikt om u te helpen bij het oplossen van verschillende problemen. Alle voorbeelden zijn gebaseerd op de volgende tabel:

Example string table data
Voorbeeld tabelgegevens voor tekenreeks
Table MyColumn Date Value
Data JKL 01/01/2012 11
Data1 WVX 01/02/2012 13
Data GHI 01/03/2012 13
Data ABC 01/04/2012 15
Data1 STU 01/05/2012 18
Data1 PQR 01/06/2012 10
Data1 MNO 01/07/2012 25
Data DEF 01/08/2012 11

Eenvoudige samenvoeging van tekenreeksen

Zoals eerder aangegeven, kunt u met de concat-functie een lijst met waarden aan elkaar voegen. Deze waarden kunnen hard zijn gecodeerd of het resultaat van selecties/gegevens.

=CONCAT(MyColumn,',')

=CONCAT(DISTINCT MyColumn,',')

Met deze eenvoudige concat-opdracht worden alle mogelijke waarden uit de kolom MijnKolom aan elkaar gevoegd. Wellicht wilt u het trefwoord DISTINCT toevoegen. Dit zorgt ervoor dat elke waarde slechts eenmaal wordt weergegeven in de tekenreeks:

ABC,DEF,GHI,JKL,MNO,PQR,STU,VWX

Bij gebruik van een simpele concat-opdracht hebt u de mogelijkheid om een sorteergewicht toe te voegen aan de functie om de tekenreekswaarden te rangschikken op een kolom van uw keuze. In het onderstaande voorbeeld wordt de datumkolom toegevoegd voor het sorteren van de waarden.

=CONCAT(MyColumn, ',', Date)

Resultaat: JKL,VWX,GHI,ABC,STU,PQR,MNO,DEF

Concat() binnen een uitdrukking/Set-opdracht

Voorbeeld: Meerdere dynamische waarden doorgeven aan een uitdrukking voor set-analyse

Er kunnen zich situaties voordoen waarbij u een dynamische selectie van waarden wilt doorgeven aan een set-opdracht. Om dit te kunnen doen, moet u enkele aanhalingstekens toevoegen aan de tekenreeks zodat de functie CONCAT() bijvoorbeeld 'JKL','VWX' retourneert. Maar u kunt de enkele aanhalingstekens niet toevoegen zoals ze zijn, omdat deze dan zouden worden geïnterpreteerd bij de evaluatie van Concat in plaats van bij de evaluatie van de set-uitdrukking. Gebruik derhalve de functie Chr():

=CONCAT(Chr(39)&MyColumn&Chr(39),',')

U kunt deze concat-opdracht dan doorgeven aan de binnenkant van een uitdrukking

=Sum({<MyColumn={$(=CONCAT(Chr(39)&MyColumn&Chr(39),','))}>} Value)

In de meeste gevallen zou deze techniek worden gebruikt bij de aanwezigheid van gegevenseilanden. U kunt hiermee waarden doorgeven aan een uitdrukking die niet van invloed zijn op enig deel van het gegevensmodel aangezien de tabel van het gegevenseiland er niet mee is verbonden.

Concat() in het script

Concat kan tevens worden gebruikt in het script voor het converteren van meerdere rijen naar een enkele kolomwaarde, net als bij elke andere aggregatie.

Uitgaande van de eerder gebruikte brongegevens, levert CONCAT het volgende resultaat op aan de scriptzijde:

ConcatExample:
Load Table,
Concat(MyColumn,',') as CombinedData
Resident Temp
Group By Table;

Hieronder volgt het resultaat van deze scriptfunctie:

Voorbeeld van uitvoer in tabelvorm
Table CombinedData
Data ABC,DEF,GHI,JKL
Data1 MNO,PQR,STU,WVX

Rank() gebruiken om Concat() te beïnvloeden

Als u begint met het gebruiken van andere functies in combinatie met concat(), kunt u beginnen met het ontvangen van slimme resultaten. In dit voorbeeld is Rank() gebruikt voor het ophalen van de drie beste presteerders (gebaseerd op Waarde) en het samenvoegen hiervan.

=CONCAT(IF(aggr(Rank(sum(Value)),MyColumn)<=3,MyColumn),',')

Resultaat: ABC,MNO,STU

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com